package net.sureon.biz;

import java.util.List;

import net.sureon.common.exception.SureonException;
import net.sureon.dao.User;

public interface UserMgr {
	public UserBO getUser(long companyID, long userID) throws SureonException;

	public List<UserBO> getUserByGroupID(long companyID, long groupID)
			throws SureonException;

	public List<UserBO> getUserByCompanyID(long companyID, int skipResults,
			int maxResults) throws SureonException;

	public List<Long> getDirectChildUsers(long companyID, long userID)
			throws SureonException;

	public List<Long> getChildUsers(long companyID, long theManageUserID,
			int level) throws SureonException;

	public List<Long> getChildUsersWithConfiguredLevel(long companyID,
			long theManageUserID) throws SureonException;

	public UserBO getUserByUsername(long companyID, String userName)
			throws SureonException;

	public long insertUser(UserBO user) throws SureonException;

	public int updateUser(UserBO user) throws SureonException;

	public UserBO getUserByEmail(String email);

	public List<UserBO> getUserByGroup(long companyID, long groupID);
	
	public UserBO getAdminUser(long companyID) throws SureonException;
}
